|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Collections; 00030 using System.Configuration; 00031 using System.Data; 00032 using System.Linq; 00033 using System.Web; 00034 using System.Web.Security; 00035 using System.Web.UI; 00036 using System.Web.UI.HtmlControls; 00037 using System.Web.UI.WebControls; 00038 using System.Web.UI.WebControls.WebParts; 00039 using System.Xml.Linq; 00040 using System.Globalization; 00041 00042 using RAIS.ApplicationLogicLayer; 00043 using RAIS.Common.Localization; 00044 using RAIS.Common.DynamicMaskManagement; 00045 using RAIS.Common.TableManagement; 00046 using RAIS.Common.UserManagement; 00047 using RAIS.UI.Common; 00048 00049 using Queries = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query>; 00050 using QueryParameters = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter>; 00051 using QueryParameterTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter.QueryParameterTypeData>; 00052 using Tables = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Table>; 00053 using CustomizationTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query.CustomizationType>; 00054 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>; 00055 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>; 00056 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>; 00057 using DynamicMasks = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.DynamicMask>; 00058 using ConsistencyChecks = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.ConsistencyCheck>; 00059 using RecordTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.ConsistencyCheck.RecordTypeData>; 00060 using Fields = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field>; 00061 using Cultures = System.Collections.Generic.Dictionary<string, RAIS.Common.Localization.Culture>; 00062 namespace RAIS.UI.SpecificMasks 00063 { 00067 public partial class EditHelp : System.Web.UI.Page 00068 { 00069 //********************************************************************* 00070 #region Enums 00071 00074 enum EditHelp_PageMode 00075 { 00076 view, 00077 add, 00078 edit 00079 }; 00080 #endregion Enums 00081 //********************************************************************* 00082 #region Properties 00083 00086 bool EditMode 00087 { 00088 get 00089 { 00090 if (this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG] != null) 00091 return (bool)this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG]; 00092 else 00093 return false; 00094 } 00095 set 00096 { 00097 this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG] = value; 00098 this.EnableDisableControls(); 00099 } 00100 } 00104 protected UserData CurrentUser 00105 { 00106 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00107 } 00111 private FunctionRole.Category SelectedCategory 00112 { 00113 get 00114 { 00115 //FunctionRoleCategories categories = RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories; 00116 FunctionRoleCategories categories = RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories; 00117 if (categories != null && categories.ContainsKey(this.DDLcategory.SelectedValue)) 00118 { 00119 return categories[this.DDLcategory.SelectedValue]; 00120 } 00121 else 00122 return null; 00123 } 00124 } 00128 private FunctionRole.Subcategory SelectedSubcategory 00129 { 00130 get 00131 { 00132 if (this.SelectedCategory != null) 00133 { 00134 //FunctionRoleSubcategories subcategories = RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(this.SelectedCategory, false, false); 00135 FunctionRoleSubcategories subcategories = UI.Common.TableManagement.GetFunctionRoleSubcategoriesByCategory(this, this.SelectedCategory, false, false, false); 00136 if (subcategories != null && subcategories.ContainsKey(this.DDLsubcategory.SelectedValue)) 00137 return subcategories[this.DDLsubcategory.SelectedValue]; 00138 else 00139 return null; 00140 } 00141 else 00142 return null; 00143 } 00144 } 00148 private Mask SelectedMask 00149 { 00150 get 00151 { 00152 if (this.SelectedCategory != null && this.SelectedSubcategory != null) 00153 { 00154 Masks masks = UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(this.SelectedCategory, this.SelectedSubcategory); 00155 if (masks != null && masks.ContainsKey(this.DDLmask.SelectedValue)) 00156 return masks[this.DDLmask.SelectedValue]; 00157 else 00158 return null; 00159 } 00160 else 00161 return null; 00162 } 00163 } 00167 private DynamicMask SelectedDynamicMask 00168 { 00169 get 00170 { 00171 if (this.SelectedMask != null) 00172 { 00173 //DynamicMasks dynamicMasks = RAIS.ApplicationLogicLayer.DynamicMaskManagement.GetDynamicMasksByMask(this.SelectedMask); 00174 DynamicMasks dynamicMasks = UI.Common.TableManagement.GetDynamicMasksByMask(this, this.SelectedMask, false); 00175 if (dynamicMasks != null && dynamicMasks.ContainsKey(this.DDLdynamicMask.SelectedValue)) 00176 return dynamicMasks[this.DDLdynamicMask.SelectedValue]; 00177 else 00178 return null; 00179 } 00180 else 00181 return null; 00182 } 00183 } 00187 private Culture SelectedTargetCulture 00188 { 00189 get 00190 { 00191 if (this.Session[RAIS.UI.Common.Constants.SELECTED_TARGET_CULTURE] == null) 00192 return RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages[RAIS.Common.Constants.DEFAULT_LANGUAGE]; 00193 return (Culture)this.Session[RAIS.UI.Common.Constants.SELECTED_TARGET_CULTURE]; 00194 00195 /*Cultures cultures = RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages; 00196 if (this.DDLdestinationlanguage.Items.Count > 0 && cultures.ContainsKey(this.DDLdestinationlanguage.SelectedItem.Text)) 00197 return cultures[this.DDLdestinationlanguage.SelectedItem.Text]; 00198 else 00199 return null;*/ 00200 } 00201 } 00202 #endregion 00203 //********************************************************************* 00204 #region Event handlers 00205 protected void Page_PreLoad(object sender, EventArgs e) 00206 { 00207 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00208 } 00215 protected void Page_Load(object sender, EventArgs e) 00216 { 00217 this.Response.Cache.SetNoStore(); 00218 if (this.CurrentUser == null) 00219 UI.Common.AccessManagement.SignOut(this); 00220 this.LBLresult.Text = string.Empty; 00221 00222 if (!this.IsPostBack) 00223 { 00224 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00225 LBLdestlanguage.Text = string.Format(LBLdestlanguage.Text, SelectedTargetCulture.EnglishName); 00226 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name; 00227 UI.Common.Localisation.InitializeLanguagesSelection(this.DDLdestinationlanguage.Items); 00228 foreach (string category in RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories.Keys) 00229 if (category!="All Main menus") 00230 this.DDLcategory.Items.Add(new ListItem(category)); 00231 OnSetCategoryValue(); 00232 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00233 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00234 EditMode = false; 00235 } 00236 if (Request.Form["__EVENTTARGET"] == UI.Common.Constants.TREEVIEW_ID) 00237 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00238 PageManagement.InitHelpMainMenu(LBTNdefault); 00239 } 00246 protected void DDLcategory_SelectedIndexChanged(object sender, EventArgs e) 00247 { 00248 this.OnSetCategoryValue(); 00249 } 00256 protected void DDLsubcategory_SelectedIndexChanged(object sender, EventArgs e) 00257 { 00258 this.OnSetSubcategoryValue(); 00259 } 00266 protected void DDLmask_SelectedIndexChanged(object sender, EventArgs e) 00267 { 00268 this.OnSetMaskValue(); 00269 } 00276 protected void DDLdynamicMask_SelectedIndexChanged(object sender, EventArgs e) 00277 { 00278 this.OnSetDinamickMaskValue(); 00279 } 00286 protected void DDLdestinationlanguage_SelectedIndexChanged(object sender, EventArgs e) 00287 { 00288 //OnSetLanguage(); 00289 } 00296 protected void BTNdiscard_Click(object sender, EventArgs e) 00297 { 00298 OnSetDinamickMaskValue(); 00299 EditMode = false; 00300 //this.OnSetDynamicMaskValue(); 00301 } 00308 protected void BTNapply_Click(object sender, EventArgs e) 00309 { 00310 EditMode = false; 00311 00312 FunctionRole.Category category = SelectedCategory; 00313 FunctionRole.Subcategory subcategory = SelectedSubcategory; 00314 Mask mask = SelectedMask; 00315 00316 // bug #731 fix. 00317 // this fix should work only for case when 'Message box' category are selected 00318 if (subcategory == null && mask == null) 00319 { 00320 // get administration category 00321 FunctionRoleCategories categories = 00322 RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories; 00323 category = 00324 categories[(string)Page.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG]]; 00325 00326 FunctionRoleSubcategories subcategories = 00327 RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(category, false, false, false); 00328 subcategory = subcategories["User management"]; 00329 00330 Masks masks = 00331 UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(category, subcategory); 00332 foreach (var dictionary in masks) 00333 { 00334 if (dictionary.Key == DDLcategory.SelectedValue) 00335 { 00336 mask = dictionary.Value; 00337 break; 00338 } 00339 } 00340 } 00341 00342 00343 ApplicationLogicLayer.Help.SaveHelp(category, 00344 subcategory, 00345 mask, 00346 SelectedDynamicMask, 00347 SelectedTargetCulture, 00348 TXTdestinationlanguage.Text); 00349 } 00356 protected void BTNedit_Click(object sender, EventArgs e) 00357 { 00358 TXTdestinationlanguage.Focus(); 00359 EditMode = true; 00360 } 00367 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00368 { 00369 //UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00370 } 00377 protected void LBTNlogout_Click(object sender, EventArgs e) 00378 { 00379 UI.Common.AccessManagement.SignOut(this); 00380 } 00381 #endregion 00382 //********************************************************************* 00383 #region Private helper methods 00384 00387 private void OnSetCategoryValue() 00388 { 00389 UI.Common.TableManagement.InitializeSubcategoryListByCategory( 00390 this.DDLsubcategory 00391 , this.SelectedCategory 00392 , true 00393 , true); 00394 this.OnSetSubcategoryValue(); 00395 00396 if (DDLsubcategory.Items.Count > 0) 00397 DDLsubcategory.Enabled = true; 00398 else 00399 DDLsubcategory.Enabled = false; 00400 00401 if (DDLmask.Items.Count > 0) 00402 DDLmask.Enabled = true; 00403 else 00404 DDLmask.Enabled = false; 00405 } 00409 private void OnSetSubcategoryValue() 00410 { 00411 this.DDLmask.Items.Clear(); 00412 Masks supportedMasks = UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(this.SelectedCategory, this.SelectedSubcategory); 00413 00414 foreach(string maskName in supportedMasks.Keys) 00415 this.DDLmask.Items.Add(maskName); 00416 this.OnSetMaskValue(); 00417 } 00421 private void OnSetMaskValue() 00422 { 00423 DynamicMasks dynamicMasks = UI.Common.TableManagement.GetDynamicMasksByMask(this, this.SelectedMask, true); 00424 DDLdynamicMask.Items.Clear(); 00425 foreach (string dynamicMask in dynamicMasks.Keys) 00426 this.DDLdynamicMask.Items.Add(new ListItem(dynamicMask)); 00427 00428 LBLdynamicMask.Visible = (DDLdynamicMask.Items.Count != 0); 00429 DDLdynamicMask.Visible = (DDLdynamicMask.Items.Count != 0); 00430 OnSetDinamickMaskValue(); 00431 this.EnableDisableControls(); 00432 } 00436 private void OnSetDinamickMaskValue() 00437 { 00438 FunctionRole.Category category = SelectedCategory; 00439 FunctionRole.Subcategory subcategory = SelectedSubcategory; 00440 Mask mask = SelectedMask; 00441 00442 if(subcategory == null && mask == null) 00443 { 00444 // get administration category 00445 FunctionRoleCategories categories = 00446 RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories; 00447 category = 00448 categories[(string)Page.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG]]; 00449 00450 FunctionRoleSubcategories subcategories = 00451 RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(category, false, false, false); 00452 subcategory = subcategories["User management"]; 00453 00454 Masks masks = 00455 UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(category, subcategory); 00456 foreach (var dictionary in masks) 00457 { 00458 if (dictionary.Key == DDLcategory.SelectedValue) 00459 { 00460 mask = dictionary.Value; 00461 break; 00462 } 00463 } 00464 } 00465 00466 Cultures cultures = RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages; 00467 PNLsourselanguage.InnerHtml = ApplicationLogicLayer.Help.GetHelp(category, subcategory, mask, SelectedDynamicMask, cultures[RAIS.Common.Constants.DEFAULT_LANGUAGE]).Replace("\r\n", "<br/>"); 00468 PNLsourselanguage.Style[HtmlTextWriterStyle.Overflow] = "scroll"; 00469 TXTdestinationlanguage.Text = ApplicationLogicLayer.Help.GetHelp(category, subcategory, mask, SelectedDynamicMask, SelectedTargetCulture); 00470 //OnSetLanguage(); 00471 } 00472 /*private void OnSetLanguage() 00473 { 00474 TXTdestinationlanguage.Text = Help.GetHelp(SelectedCategory, SelectedSubcategory, SelectedMask, SelectedDynamicMask, SelectedTargetCulture); 00475 }*/ 00479 private void EnableDisableControls() 00480 { 00481 if (SelectedTargetCulture.EnglishName == RAIS.Common.Constants.DEFAULT_LANGUAGE) 00482 { 00483 LBLsourselanguage.Visible = false; 00484 PNLsourselanguage.Visible = false; 00485 } 00486 DDLcategory.Enabled = !EditMode; 00487 DDLsubcategory.Enabled = !EditMode; 00488 DDLmask.Enabled = !EditMode; 00489 DDLdynamicMask.Enabled = !EditMode; 00490 00491 TXTdestinationlanguage.Enabled = EditMode; 00492 00493 BTNdiscard.Enabled = EditMode; 00494 BTNapply.Enabled = EditMode; 00495 00496 if(DDLsubcategory.SelectedIndex == -1 && DDLmask.SelectedIndex == -1) 00497 { 00498 BTNedit.Enabled = !EditMode; 00499 } 00500 else 00501 { 00502 BTNedit.Enabled = !EditMode && this.SelectedMask != null; 00503 } 00504 00505 00506 } 00507 #endregion 00508 } 00509 }